package flex.cc.store.dto.entity;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import flex.cc.common.vo.CommonEntity;
import lombok.Data;

/**
 * 
 * @author WANGCONG
 * 2021年12月15日上午9:36:52
 * @desc 卡券表
 */
@Data
@TableName("t_store_coupon")
public class StoreCouponEntity extends CommonEntity{
	
	private static final long serialVersionUID = 1L;
	/**
	 * 主键
	 */
	private String dataId;
	/**
	 * 部分导出时，存储选择的dataId集合
	 */
	private String[] dataIdArr;
	
	/**
	 * 券码
	 */
	private String couponNum;
	/**
	 * 加密串
	 */
	private String encrypt;
	/**
	 * 生效时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date effDate;
	/**
	 * 失效时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date expDate;
	/**
	 * 状态 :1-有效、2-已过期、3-已使用（核销完成）、4-已取消、0-未生效
	 */
	private String status;
	/**
	 * 服务类型id
	 */
	private String activityId;

	@TableField(exist = false)
	private String activityName;  // 服务项目名称

	/**
	 * 渠道方
	 */
	private String channel;
	/**
	 * 服务方
	 */
	private String server;
	
	/**
	 * 服务包编码 车服生成 对应多个下有返回的服务包编码
	 */
	private String packageCodeCF;
	
	/**
	 * 归属服务包
	 */
	private String packageCode;
	/**
	 * 核销时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date checkDate;
	
	/**
	 * 客户姓名
	 */
	private String customerName;
	
	/**
	 * 绑定手机号
	 */
	private String phone;
	/**
	 * 绑定车牌号
	 */
	private String carNo;
	
	/**
	 * 归属订单号
	 */
	private String orderId;
	
	/**
	 * 激活码  用于医护卡券
	 */
	private String activateCode;
	
	/**
	 * 查询条件：起止时间
	 */
	private String startTime;
	private String endTime;

	//有效期
	private int validPeriod;

	/**
	 * 卡券状态，查询条件支持多选
	 */
	private String[] statusArr;

	/**
	 * 卡券类型，查询条件支持多选
	 */
	private String[] activityIdArr;

    //TODO 	卡券导出的时间字段处理
    //此处为服务包的发送时间
	private String sendDate;
	//卡券导出的创建时间
	private String cardCreateTime;
	//导出的核销时间
	private String cardcheckDate;
	private String cardEffDate;
	private String cardExpDate;

	//服务包名称
	private String packageName;

	/**
	 * 医护类卡券是否已激活，默认0-非，1-是
	 */
	private Integer isActivate;
	/**
	 * 服务类别，1-服务包、2-单项服务
	 */
	private String serviceType;
}
